from datetime import datetime

import pytz


def format_duration(seconds):
    """将秒数格式化为更友好的字符串，包括单位。"""
    if seconds < 0.0001:
        return f'{seconds * 1000000:.2f} 微秒'
    elif seconds < 0.1:
        return f'{seconds * 1000:.2f} 毫秒'
    else:
        return f'{seconds:.2f} 秒'


def timestamp_to_ymd(timestamp: int):
    """将时间戳转换为 2024-10-11 格式的字符串。"""
    d = datetime.fromtimestamp(timestamp)
    return d.strftime('%Y-%m-%d')


def get_local_time(utc_time_str):
    if isinstance(utc_time_str, datetime):
        # 如果 utc_time_str 是 datetime 对象，不需要使用strptime来解析它
        utc_time = utc_time_str
    else:
        utc_time = datetime.strptime(utc_time_str, '%Y-%m-%d %H:%M:%S')
    utc_time = utc_time.replace(tzinfo=pytz.UTC)
    shanghai_time = utc_time.astimezone(pytz.timezone('Asia/Shanghai'))
    return shanghai_time.strftime('%Y-%m-%d %H:%M:%S')
